package com.muyu.danmo.mapper;


import com.muyu.danmo.domain.DanmoTariningDoor;
import com.muyu.danmo.domain.DanmoTariningInteror;
import com.muyu.danmo.domain.DanmoTariningWorks;
import com.muyu.danmo.domain.DanmoTrainingInformation;
import org.apache.ibatis.annotations.Param;


import java.util.List;

/**
 * 培训班详情Mapper接口
 *
 * @author yangle
 * @date 2024-10-10
 */
public interface DanmoTrainingInformationMapper {
    /**
     * 查询培训班详情
     *
     * @param id 培训班详情主键
     * @return 培训班详情
     */
    public DanmoTrainingInformation selectDanmoTrainingInformationById(Long id);

    /**
     * 查询培训班详情列表
     *
     * @param danmoTrainingInformation 培训班详情
     * @return 培训班详情集合
     */
    public List<DanmoTrainingInformation> selectDanmoTrainingInformationList(DanmoTrainingInformation danmoTrainingInformation);

    /**
     * 新增培训班详情
     *
     * @param danmoTrainingInformation 培训班详情
     * @return 结果
     */
    public int insertDanmoTrainingInformation(DanmoTrainingInformation danmoTrainingInformation);

    /**
     * 修改培训班详情
     *
     * @param danmoTrainingInformation 培训班详情
     * @return 结果
     */
    public int updateDanmoTrainingInformation(DanmoTrainingInformation danmoTrainingInformation);

    /**
     * 删除培训班详情
     *
     * @param id 培训班详情主键
     * @return 结果
     */
    public int deleteDanmoTrainingInformationById(Long id);

    /**
     * 批量删除培训班详情
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDanmoTrainingInformationByIds(@Param("ids") Long[] ids);

    DanmoTrainingInformation selectDanmoTrainingInformation(DanmoTrainingInformation danmoTrainingInformation);

    void addDanmoTrainingInformation(DanmoTrainingInformation danmoTrainingInformation);


    List<DanmoTrainingInformation> selectDanmoTrainingInformationByUserId(DanmoTrainingInformation danmoTrainingInformation);

    DanmoTrainingInformation selectById(@Param("id") Long id);

    void insertDanmoTariningDoorList(@Param("list") List<DanmoTariningDoor> doorList);

    void insertDanmoTariningInterorList(@Param("list") List<DanmoTariningInteror> danmoTariningInterorList);

    void insertDanmoTariningWorksList(@Param("list") List<DanmoTariningWorks> danmoTariningWorksList);


    List<Long> selectIdsByTrainingDoorIds(@Param("id") Long trainingInformationId);

    void batchDeleteoldDoorIds(@Param("oldDoorIds") List<Long> oldDoorIds);

    List<Long> selectIdsByTrainingWorkIds(@Param("id") Long trainingInformationId);

    void batchDeleteoldWorkIds(@Param("oldWorkIds") List<Long> oldWorkIds);

    List<Long> selectIdsByTrainingInteriorPhotoIds(@Param("id") Long trainingInformationId);

    void batchDeleteOldInteriorPhotoIds(@Param("oldInteriorPhotoIds") List<Long> oldInteriorPhotoIds);

    void deledanmoPrintingTypeRelation(@Param("id") Long id);

    void deleteDanmoTariningInteror(@Param("id") Long id);

    void deleteDanmoTariningDoor(@Param("id") Long id);

    void deleteDanmoTariningWorks(@Param("id") Long id);

    void updateDanmoTrainingInformationsetViews(DanmoTrainingInformation danmoTrainingInformation);

    List<DanmoTrainingInformation> selectDanmoTrainingInformationViewsList(DanmoTrainingInformation danmoTrainingInformation);

    List<DanmoTrainingInformation> selectDanmoTrainingInformationAmountPraiseList(DanmoTrainingInformation danmoTrainingInformation);

    void deleteDanmoTrainingInformationByIdss(@Param("ids") Long[] ids);

    List<DanmoTrainingInformation> selectByIds(@Param("ids") List<Long> ids);
}
